package PodsumowaniaLingwistyczne;

import java.util.List;

import Narzedzia.ListaElementow;
import PrzestrzenCiagla.ZbiorRozmytyTypu2;
import ZmiennaLingwistyczna.WartoscLingwistyczna;
import ZmiennaLingwistyczna.WartoscLingwistycznaTypu2;
import csvIO.CsvRow;

public class KwalifikatorTypu2 implements IKwalifikatorTypu2 {

	private WartoscLingwistycznaTypu2 wartoscLingwistyczna;
	private int indeksPolaKrotki;
	
	public KwalifikatorTypu2(WartoscLingwistycznaTypu2 wartoscLingwistyczna, int indeksPolaKrotki) {
		super();
		this.wartoscLingwistyczna = wartoscLingwistyczna;
		this.indeksPolaKrotki = indeksPolaKrotki;
	}
	
	public KwalifikatorTypu2(IKwalifikator kwalifikatorTypu1) {
		super();
		WartoscLingwistyczna wartosc = kwalifikatorTypu1.getWartoscLingwistyczna();
		ZbiorRozmytyTypu2 zbiorTypu2 = new ZbiorRozmytyTypu2(wartosc.getZbior());
		this.wartoscLingwistyczna = new WartoscLingwistycznaTypu2(wartosc.getEtykieta(), zbiorTypu2, wartosc.getModyfikator());
		this.indeksPolaKrotki = kwalifikatorTypu1.getIndeksPolaKrotki();
	}
	
	public float getPrzynaleznosc(CsvRow krotka){
		return wartoscLingwistyczna.getBazowaPrzynaleznosc(Float.parseFloat(krotka.get(indeksPolaKrotki)));
	}
	
	public int getIndeksPolaKrotki() {
		return indeksPolaKrotki;
	}
	
	public List<IKwalifikatorTypu2> getKwalifikatorySkladowe(){
		List<IKwalifikatorTypu2> lista = new ListaElementow<IKwalifikatorTypu2>();
		lista.add(this);
		return lista;
	}
	
	public WartoscLingwistycznaTypu2 getWartoscLingwistyczna(){
		return wartoscLingwistyczna;
	}
	
	public String toString(){
		return wartoscLingwistyczna.toString();
	}
}
